Skip to content

Latest commit

 

History

History
71 lines (57 loc) · 1.64 KB

File metadata and controls

71 lines (57 loc) · 1.64 KB

775. Global and Local Inversions

You are given an integer array nums of length n which represents a permutation of all the integers in the range [0, n - 1].

The number of global inversions is the number of the different pairs (i, j) where:

  • 0 <= i < j < n
  • nums[i] > nums[j]

The number of local inversions is the number of indices i where:

  • 0 <= i < n - 1
  • nums[i] > nums[i + 1]

Return trueif the number of global inversions is equal to the number of local inversions.

Example 1:

Input: nums = [1,0,2] Output: true Explanation: There is 1 global inversion and 1 local inversion. 

Example 2:

Input: nums = [1,2,0] Output: false Explanation: There are 2 global inversions and 1 local inversion. 

Constraints:

  • n == nums.length
  • 1 <= n <= 105
  • 0 <= nums[i] < n
  • All the integers of nums are unique.
  • nums is a permutation of all the numbers in the range [0, n - 1].

Solutions (Ruby)

1. Solution

# @param {Integer[]} nums# @return {Boolean}defis_ideal_permutation(nums)max=0(2...nums.size).eachdo |i| max=[max,nums[i - 2]].maxreturnfalseifnums[i] < maxendtrueend

Solutions (Rust)

1. Solution

implSolution{pubfnis_ideal_permutation(nums:Vec<i32>) -> bool{letmut max = 0;for i in2..nums.len(){ max = max.max(nums[i - 2]);if nums[i] < max {returnfalse;}}true}}
close